package com.developmentReformProject.service;

import com.developmentReformProject.dto.EnterpriseQueryDto;
import com.developmentReformProject.dto.FiveQueryDto;
import com.developmentReformProject.dto.FiveYearProjectDto;
import com.developmentReformProject.dto.ThreeQueryDto;
import com.developmentReformProject.entity.Enterprise;
import com.developmentReformProject.entity.FiveYearProject;
import com.developmentReformProject.entity.ThreeYearProject;
import com.developmentReformProject.utils.PageUtil;

import java.util.List;

public interface FiveYearProjectLibraryService {
    /**
     * 添加项目
     * @param fiveYearProject
     * @return
     */
    String addProject(FiveYearProject fiveYearProject);

    /**
     * 修改项目
     * @param fiveYearProject
     * @return
     */
    String updateProject(FiveYearProject fiveYearProject);

    /**
     * 通过项目编号删除项目
     * @param projectNo
     * @return
     */
    String deleteProject(Integer projectNo);

    /**
     * 通过项目编号批量删除项目
     * @param projectNos
     * @return
     */
    String deleteProject(List projectNos[]);
    /**
     * 通过项目编号查找项目
     * @param projectNo
     * @return
     */
    FiveYearProjectDto queryProjectById(Integer projectNo);
    /**
     * 通过项目编号批量查找项目
     * @param projectNo
     * @return
     */
    List<FiveYearProjectDto> queryProjectList(List projectNo[]);

    /**
     * 通过经济收益分析查找项目
     * @param constructionStatus
     * @return
     */
    List<FiveYearProjectDto> queryProjectByConstructionStatus(String constructionStatus);

    /**
     * 通过企业编码查找项目
     * @param enterprise
     * @return
     */
    List<FiveYearProjectDto> queryProjectByentEnterpriseNumber(Enterprise enterprise);

    /**
     * 通过经济收益查找项目
     * @param revenue
     * @return
     */
    List<FiveYearProjectDto> queryProjectByRevenue(Double revenue);

    /**
     * 通过具体分类查找项目
     * @param specificType
     * @return
     */
    List<FiveYearProjectDto> queryProjectBySpecificType(String specificType);

    /**
     * 导出项目书
     * @param projectNo
     * @return
     */
    String reportExport(Integer projectNo);

    /**
     * 生成五年项目库分析书
     * @param fiveYearProjectDto
     * @return
     */
    String overAllAnalysisOfTheFiveYearProject(FiveYearProjectDto fiveYearProjectDto);
    public PageUtil<FiveYearProject> pageList(FiveQueryDto fiveQueryDto) throws Exception;
    PageUtil<FiveYearProject> cleanFive(FiveQueryDto fiveQueryDto) throws Exception;

}
